Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL][PHP]Logowanie html -> php, zęby zjadłem i panokcie a nie chodzi
trzcina
post
Post #1





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 17.12.2010
Skąd: 52°10'N 20°48'E

Ostrzeżenie: (0%)
-----


Witam wszystkich,

Słuchajcie mam taki oto problem.

1. Na serwerze jest index.html, składający się z 3 pól tekstowych. W środku index.html jest funkcyjka sprawdzająca czy delikwent wypełnił wszystkie pola.

2. Na serwerze jest również index.php, do którego użytkownik ma zostać przekierowany po wypełnieniu wszystkich pól z (1)

3. Niestety, jak wpisze sie domena.pl/index.php to wszystko widac


PYTANIE: jaki kod umiescic w index.php, ktory by sprawdzal zmienne z html i w zaleznosci od ich obecnosci pokazywal zawartosc index.php lub odsylal z powrotem do formularza logujacego? Pozniej chce to rozbudowac o MySQL ale teraz chodzi mi tylko o to, zeby nie mozna bylo zobaczyc index.php bez uprzedniego wypelnienia index.html

Oto kod formularza html. Bardzo prosze o kod do index.php, jakikolwiek, ktory spelnialby w/w opisana funkcjonalnosc.

Kod
<html>
<head>
</head>
<body>
<script type="text/javascript">
// <![CDATA[
function sprawdz(formularz)
{
    for (i = 0; i < formularz.length; i++)
    {
        var pole = formularz.elements[i];
        if (!pole.disabled && !pole.readonly && (pole.type == "text" || pole.type == "password" || pole.type == "textarea") && pole.value == "")
        {
            alert("Prosze wypelnic wszystkie pola!");
            return false;
        }
    }
    return true;
}
// ]]>
</script>

<form action="index.php" method="post" onsubmit="if (sprawdz(this)) return true; return false">
<div>
    Imie: <input type="text" name="username" /><br />
    Nazwisko: <input Nazwisko type="text" name="username2" /><br />
    Haslo:<input Haslo type="password" name="userpassword" /><br />
    <input type="submit" value="OK" />
</div>
</form>
</body>
</html>
Go to the top of the page
+Quote Post
markonix
post
Post #2





Grupa: Zarejestrowani
Postów: 2 707
Pomógł: 290
Dołączył: 16.12.2008
Skąd: Śląsk

Ostrzeżenie: (0%)
-----


isset - czy zmienne z formularza istnieją
header - przekierowanie (lub w js)
Go to the top of the page
+Quote Post
CuteOne
post
Post #3





Grupa: Zarejestrowani
Postów: 2 958
Pomógł: 574
Dołączył: 23.09.2008
Skąd: wiesz, że tu jestem?

Ostrzeżenie: (0%)
-----


co znaczy "wszystko widać" o.O?? dodaj na początku skryptu w index.php
  1. if(!isset($_POST['username'])) {
  2. }


Jeżeli ktoś nie przeszedł z index.html wypełniając formularz zostanie automatycznie przeniesiony do index.html

ps. index.php nie jest plikiem do obsługi autoryzacji

Ten post edytował CuteOne 17.12.2010, 14:54:39
Go to the top of the page
+Quote Post
trzcina
post
Post #4





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 17.12.2010
Skąd: 52°10'N 20°48'E

Ostrzeżenie: (0%)
-----


Cute,

Zaraz sprawdze Twoj kod ale chyba wlasnie o to mi biega. Mowiac ze wszystko widac, mam na mysli ze jak wpisuje mojadomena.com/index.php (a index.php nie jest u mnie plikiem autoryzujacym) widac jego zawartosc. A nie chce zeby bylo to widac dopoki nie wypelnie index.html

W jednym katalogu (tam gdzie index.html) zrobilem taki plik index.php:

Kod
<?php
if(!isset($_POST['username'])) {
header('Location: index.html');
}
else
echo 'It works!;
?>
//jesli obecna jest zmienna username, wyswietl potwierdzenie
<html>
It works
</html>


1. czy efektem powyzszego kodu, jest wyswietlenie sie "it works" tylko w przypadku kiedy zmianna 'username' jest niepusta?

2. czy teraz, jak wywolam index.php poprzez wpisanie: http://mojadomena/index.php, bez uprzedniego wypelnienia formularza html, pojawi mi sie jego zawartosc, czy mnie przekieruje na index.html? Chodzi mi o sposob lokalnego przekierowania, czy mozna po prostu wpisac nazwe pliku czy trzeba jakos inaczej to zrobic?

Ten post edytował trzcina 17.12.2010, 15:35:14
Go to the top of the page
+Quote Post
Szadow
post
Post #5





Grupa: Zarejestrowani
Postów: 47
Pomógł: 6
Dołączył: 21.11.2010

Ostrzeżenie: (0%)
-----


Spróbuj tak:
  1. <?php
  2. if(!isset($_POST['username'])) {
  3. header('Location: index.html');
  4. }
  5. else
  6. {
  7. echo 'It works!;
  8. ?>
  9. //jesli obecna jest zmienna username, wyswietl potwierdzenie
  10. It works
  11. </html>
  12. <?php } ?>


Z powyższym kodem:
1.Tak
2.Tak

Ten post edytował Szadow 17.12.2010, 16:06:24
Go to the top of the page
+Quote Post
trzcina
post
Post #6





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 17.12.2010
Skąd: 52°10'N 20°48'E

Ostrzeżenie: (0%)
-----


Szadow i pozostali dziekuje za podpowiedzi. Wyglada na to ze dziala ale ostatecznie upewnie sie za 2h. Bardzo chcialbym Was poprosic o dalsza pomoc - kolejnym etapem bedzie rozbudowa formularza o rejestracje w MySQL. Uzytkownik bedzie mogl zarejestrowac sie w bazie a index.php bedzie pobieral uzytkownikow z bazy i sprawdzal poprawnosc z formularzem html - oczywiscie przykladow na necie jest mnostwo ale sorry - prawie zaden z nich mi nie dzialal przez copy-paste, wole sam zrobic od zera.
Go to the top of the page
+Quote Post
Szadow
post
Post #7





Grupa: Zarejestrowani
Postów: 47
Pomógł: 6
Dołączył: 21.11.2010

Ostrzeżenie: (0%)
-----


Nie dam ci gotowca ale jeśli chcesz zrobić logowanie:
1. Używaj Sesji i isset
2.Przy rejestracji filtruj wszystkie dane a hasła w bazie koduj MD5 i sha1
Go to the top of the page
+Quote Post
trzcina
post
Post #8





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 17.12.2010
Skąd: 52°10'N 20°48'E

Ostrzeżenie: (0%)
-----


Dzieki za podpowiedz, session_start(); bedzie w nastepnym temacie. O md5 wiem ale sha1 jeszcze nie.

Cytat(Szadow @ 17.12.2010, 16:05:45 ) *
Spróbuj tak:
  1. <?php
  2. if(!isset($_POST['username'])) {
  3. header('Location: index.html');
  4. }
  5. else
  6. {
  7. echo 'It works!;
  8. ?>
  9. //jesli obecna jest zmienna username, wyswietl potwierdzenie
  10. It works
  11. </html>
  12. <?php } ?>


Z powyższym kodem:
1.Tak
2.Tak


Czesc. Niestety nie dziala. Pojawia sie biala strona, gdy podgladam zrodlo strony mam pusto.
mozecie sami sprawdzic: trzcinson.no-ip.org


OK, kod uzytkownika Cute zadzialal.

DZIEKI!

Ten post edytował trzcina 17.12.2010, 20:55:35
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 23.08.2025 - 05:45